Courier network management

ABSTRACT

Some examples include a processor that accesses past order information for a plurality of past orders received in the past for a plurality of merchants and delivered by delivery agents. Further, for an upcoming time period, based on the past orders received by individual merchants over a past period of time, the processor may determine a predicted number of orders to be received for an upcoming time period for the individual merchants. The processor may execute delivery agent management logic to compare, for the upcoming time period, a number of active delivery agents with the predicted number of orders, and may send a message to a first delivery agent device associated with a first delivery agent to cause one of: activation of the first delivery agent from inactive status to active status, or deactivation of the first delivery agent from active status to inactive status.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of, and claims priority to, U.S.patent application Ser. No. 16/191,873, filed Nov. 15, 2018, issued asU.S. Pat. No. 10,885,479, on Jan. 5, 2021, which is a continuation of,and claims priority to, U.S. patent application Ser. No. 14/625,673,filed Feb. 19, 2015, issued as U.S. Pat. No. 10,133,995, on Nov. 20,2018, all of which are incorporated by reference herein.

BACKGROUND

People enjoy eating quality food that is prepared by good restaurants.Nevertheless, sometimes people may not want to go to a restaurant, butinstead may prefer to have food delivered to them. To meet this demand,a courier may deliver food prepared by a restaurant to a customer at adelivery location. For example, a service may enable customers to orderfood items from any of a variety of restaurants, and may arrange forcouriers to deliver the food items from the restaurants to thecustomers. However, if an insufficient number of couriers are availableat any particular time, or if the couriers are too far from a pickuplocation, the food items may be delivered late, may be delivered cold,and/or may be delivered under other unsatisfactory circumstances.Alternatively, if too many couriers are available, then some couriersmay be idle and/or may not be adequately compensated for their time andservice.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is set forth with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference numbers in different figures indicates similaror identical items or features.

FIG. 1 illustrates an example environment for managing a plurality ofcouriers according to some implementations.

FIG. 2 is a block diagram illustrating an example framework forpredicting upcoming order locations to manage a plurality of couriersaccording to some implementations.

FIG. 3 illustrates an example graphic user interface for presentation ona courier device according to some implementations.

FIG. 4 illustrates an example graphic user interface for presentation ona courier device according to some implementations.

FIG. 5 is a flow diagram illustrating an example process for managingcourier locations according to some implementations.

FIG. 6 is a flow diagram illustrating an example process for managingcourier activations and/or deactivations according to someimplementations.

FIG. 7 illustrates select components of one or more example servicecomputing devices according to some implementations.

FIG. 8 illustrates select components of an example courier deviceaccording to some implementations.

DETAILED DESCRIPTION

Some implementations herein provide technological innovations thatenable people to participate as couriers in a new type of crowdsourcedservice economy. With the technology herein, essentially any person witha mobile device is able to immediately become a courier, or cease to bea courier, in a courier network that provides delivery services fordelivery of items from merchants to buyers. Through the interaction of aplurality of computing devices, mobile devices, and location sensors, asdiscussed additionally below, implementations herein can manage anotherwise unpredictable sharing ecosystem in which a large number ofpeople are able to start serving as couriers, or cease serving ascouriers, as necessary, to accommodate ever changing circumstances andconditions of the merchants, the buyers, the service region, and thecouriers themselves. Consequently, the technology disclosed hereinenables efficient crowdsourcing of courier services in an on-demandmanner from a varying group of people for providing a delivery serviceto merchants and buyers.

Some implementations described herein include techniques andarrangements for managing a network of couriers. For example, a servicemay include a courier network composed of a plurality of couriers thatare paid to pick up items, such as prepared food and other items frommerchants, such as restaurants. Buyers may place orders with themerchants for desired items, and the couriers deliver the items to thebuyers at delivery locations specified by the buyers. In some instances,the locations of the couriers before, during, and after a delivery maybe managed through activation, movement, positioning, and/ordeactivation of one or more couriers of the plurality of couriers.

Various factors may be taken into consideration when managing theplurality of couriers, such as current locations of each of the courierswith respect to other couriers, locations of merchants predicted toreceive orders, a predicted number of orders that are expected to bereceived by each merchant, predicted types of items expected to beordered, predicted order preparation times, and so forth. When theservice receives an order from a buyer, the service provides the orderto a particular merchant that will prepare the one or more itemsrequested in the order. It is desirable for a courier to arrive at themerchant's location before the time at which the order is ready forpickup. To accomplish this goal, the service may move active courierstoward merchant locations that are likely to become busy, e.g., during alunch rush, dinner rush, etc. Additionally, or alternatively, theservice may post active couriers at the merchant locations of merchantsthat are likely to receive orders. As still another alternative, theservice may post active couriers near merchants that are likely toreceive orders, such as at a low-cost waiting location. For instance,rather than being posted at a particular merchant location, the couriermay be posted at a location between two or more merchants that arelikely to receive orders.

Further, in anticipation of receiving orders for particular merchants atparticular times, the service can activate an inactive courier and theninstruct the newly activated courier to move toward, be posted at, or beposted near, one or more merchants that are predicted to receive orders.Additionally, after a busy period is over, the service can deactivate anactive courier based on factors such as current location of the courier,expected locations of future orders, current locations of othercouriers, and various other considerations, as discussed additionallybelow. As another example, a courier on one side of the city where lowdemand is predicted may be deactivated and a courier on another side ofthe city where high demand is predicted may be activated. Thus, acourier essentially can be moved from a low-demand location to a highdemand location based on activation time, rather than based on actualtravel time. In some cases, incentives can be provided to couriers forany of activations, moves, posts, and deactivations. Accordingly, theservice is able to manage a plurality of couriers by activating, moving,posting, and deactivating the couriers in view of a changing order flow.

As one example, the service may determine, for a plurality of merchantsavailable to provide items for delivery within a service region, apickup location associated with each merchant. The service region may bea geographic region within which buyers and merchants may be locatedsuch that buyers may have items delivered to delivery locations withinthe geographic region from merchants having pickup locations within thegeographic region. Additionally, based on past order information, theservice may determine, for a time of day and a day of a week, a quantityof orders received by individual merchants in the service region over apast period of time, e.g., during the past month, past six months, pastyear, etc. Further, the service may determine a respective predictedorder preparation time associated with each merchant. For instance,based on the past order information and/or preparation time informationprovided by the individual merchants, the service may determine typicalpreparation times for orders of various different items that areprepared by each merchant.

The service may predict, for a current time of day and day of the week,based at least in part on the orders received by the individualmerchants over the past period of time, one or more individual merchantslikely to receive an order. The service may also determine the currentrespective locations of a plurality of couriers available to deliver oneor more items to buyers within the service region. Based at least inpart on the current time day and the day of the week, locations of theone or more merchants predicted to receive an order, the respectivepredicted order preparation times for those merchants, and therespective current locations of the couriers, the service may send acommunication to a particular courier. For example, the communicationmay include instructions for the courier to move to a particularrecommended location to be available for picking up one or more itemsfrom the one or more merchants that are predicted to receive an order.

As used herein, an order may include a request submitted by a buyer(e.g., a customer) for the acquisition of food items and/or other goods(referred to herein as items) from a merchant. The order information maybe received by the service and forwarded to the merchant. For example, amerchant may include a restaurant, or any other business or other entityengaged in the offering of items for delivery to buyers. Actionsattributed to a merchant herein may include actions performed byemployees or other agents of the merchant and, thus, no distinction ismade herein between merchants and their employees unless specificallydiscussed. In addition, a buyer may include any entity that purchasesitems from a merchant. Buyers may be customers or potential customers ofa particular merchant. The service may receive payment from a buyer foran order and the service may provide payment to the merchant for theorder. Further, the service may provide payment to the courier fordelivering the order.

For discussion purposes, some example implementations are described inthe environment of a service computing device that manages a network ofcouriers based in part on historic information regarding past ordersreceived for a plurality of merchants in a service region. However,implementations herein are not limited to the particular examplesprovided, and may be extended to other service environments, othersystem architectures, other factors for movement of couriers, othertypes of goods, and so forth, as will be apparent to those of skill inthe art in light of the disclosure herein.

FIG. 1 illustrates an example environment 100 for managing a pluralityof couriers according to some implementations. For instance, theenvironment 100 may enable one or more service computing devices 102 ofa service provider 104 to receive, over one or more networks 106, orderinformation 108 from one or more buyers 110 of a plurality of buyers110(1)-110(N). Based on the order information 108 received from aparticular buyer 110, the service computing device 102 may send orderinformation 112 to a particular merchant 114 of a plurality of merchants114(1)-114(M). The particular merchant 114 may receive the orderinformation 112, and may respond with confirmation information 116 toconfirm that the order has been received and will be prepared by theparticular merchant 114.

In some examples, the order information 112 sent to the merchant 114 mayidentify one or more items 118 ordered by the buyer 110 from theparticular merchant 114. For instance, each merchant 114(1)-114(M) mayoffer one or more items 118(1)-118(M), respectively, which may beordered by buyers 110 for delivery. In some cases, the order information112 may also specify a time at which the order is to be picked up by acourier 120 of a plurality of couriers 120(1)-120(L). For instance, theconfirmation information 116 sent by the merchant 114 to the servicecomputing device 102 may confirm the pickup time specified by theservice computing device 102. In other cases, the order information 112sent to the merchant 114 may merely include an identification of one ormore items 118 ordered, and the merchant 114 may include with theconfirmation information 116 a specified time at which the order will beready for pickup.

In either event, in response to receiving the confirmation information116 from the particular merchant 114, the service computing device 102may send order information 122 to a particular courier 120 who will pickup the order from the particular merchant 114 and deliver the order tothe particular buyer 110. For instance, each merchant 114(1)-114(M) maybe associated with a respective pickup location 124(1)-124(M), which maytypically be the merchant's place of business. Furthermore, each buyer110(1)-110(N) may be associated with a respective delivery location126(1)-126(N). In some examples, two buyers 110 may be at the samedelivery location 126.

The order information 122 sent to the courier 120 may include the pickuplocation for the order, the pickup time, and the delivery location forthe order. In some examples, the order information 122 may furtherinclude a contract time, i.e., a time by which the service provider 104has agreed to have the ordered items 118 delivered to the buyer 110 atthe delivery location 126. Further, in some cases, the order information122 may include an amount that the courier 120 will be paid if thecourier 120 accepts the delivery job and/or the order information 122may include other information related to the order.

In the illustrated example, the service computing device 102 of theservice provider 104 is able to communicate with merchant devices128(1)-128(M) over the one or more networks 106. Each merchant device128(1)-128(M) may be associated with a respective merchant114(1)-114(M). Each merchant device 128(1)-128(M) may be a computingdevice, such as a desktop, laptop, tablet, smart phone, or the like, andmay include a respective instance of a merchant application130(1)-130(M) that executes on the respective merchant device128(1)-128(M). For example, the merchant application 130 may beconfigured to communicate with the service computing device 102, such asfor receiving the order information 112 and for sending the confirmationinformation 116. In some examples, the merchant application 130 and theservice computing device 102 may communicate with each other via one ormore application programming interfaces (APIs). Further, the merchantdevice 128 may include one or more output devices, such as speakers (notshown in FIG. 1), that the merchant application 130 may use to audiblynotify the respective merchant 114 that an order has been received.Additionally, or alternatively, the merchant device 128 may include adisplay (not shown in FIG. 1) that the merchant application 130 may usefor presenting the order information 112 to the merchant 114. Forinstance, the merchant application 130 on the merchant device 128 maypresent the order information 112 in one or more graphic user interfaces(GUIs).

In some examples, the merchant application 130 may provide point-of-sale(POS) functionality to the merchant device 128 to enable the merchant114 to accept payments using the merchant device 128. Alternatively, insome examples, the merchant device 128 may be a fax machine and themerchant 114 may receive the order information 112 via a facsimiletransmission from the service computing device 102. As still anotherexample, the merchant device 128 may be a computing device that isconfigured to receive order information via email, instant messaging, orother electronic communication. As still another example, the merchantdevice 128 may be a phone, and the merchant device 128 may receive theorder information 112 via an SMS (short messaging service) text message,voicemail, telephone call, or the like.

In addition, the buyers 110(1)-110(N) may be associated with respectivebuyer devices 132(1)-132(N) that may execute respective instances ofbuyer applications 134(1)-134(N). For example, buyers 110 may use buyerdevices 132, such as smart phones, tablet computers, wearable computingdevices, laptops, desktops, or the like, and these buyer devices 132 mayhave installed thereon the buyer application 134. The buyer application134 may enable the buyer 110 to select one or more items 118 to purchasefrom one or more of the merchants 114 to be delivered to the buyer 110by one or more of the couriers 120. For example, the buyer application134 may present one or more GUIs on a display for enabling the buyer 110to select one or more items for an order.

Further, the buyer application 134 may enable the buyer 110 to place anorder from a merchant 114 in advance, such as for scheduling an orderfor delivery at a later time on the same day, at a specified time on afuture day, or the like. For instance, the buyer 110 may be able toplace an order through the buyer application 134 to have lunch deliveredat a specified delivery location by a specified time on a specified day.The buyer application 134 may further enable the buyer 110 to make apayment for an order using the buyer application 134. For instance, theservice provider 104 may charge a buyer account associated with thebuyer 110 for an amount associated with a particular order. In someexamples, the buyer application 134 and the service computing device 102may communicate with each other via one or more APIs. Additionally, oralternatively, the buyer application 134 may be a web browser, or thelike, and the buyer 110 may navigate to a website associated with theservice provider 104, and may use the website associated with theservice provider 104 to place an order.

In addition, the couriers 120(1)-120(L) may be associated withrespective courier devices 136(1)-136(L) that may execute respectiveinstances of courier applications 138(1)-138(L). For example, couriers120 may use courier devices 136, such as smart phones, tablet computers,wearable computing devices, laptops, or the like, as further enumeratedelsewhere herein, and these courier devices 136 may have installedthereon the courier application 138. The courier application 138 may beconfigured to receive the order information 122 from the servicecomputing device 102 to provide a particular courier 120 withinformation for picking up a particular order from a merchant's pickuplocation 124 and for delivering the order to a buyer's delivery location126. The courier application 138 may further enable the courier 120 torespond to the service computing device 102 to confirm acceptance of adelivery job. Additionally, in some cases, the courier application 138may provide the service computing device 102 with an indication of acurrent location of a particular courier 120. In some examples, thecourier application 138 and the service computing device 102 maycommunicate with each other via one or more APIs. Alternatively, inother examples, the courier device 136 may receive the order information122 via an SMS text message, a voicemail, a telephone call, or the like.

The one or more networks 106 can include any appropriate network,including a wide area network, such as the Internet; a local areanetwork, such an intranet; a wireless network, such as a cellularnetwork, a local wireless network, such as Wi-Fi and/or close-rangewireless communications, such as BLUETOOTH® and BLUETOOTH® low energy; awired network; or any other such network, or any combination thereof.Accordingly, the one or more networks 106 may include both wired and/orwireless communication technologies. Components used for suchcommunications can depend at least in part upon the type of network, theenvironment selected, or both. Protocols for communicating over suchnetworks are well known and will not be discussed herein in detail.Accordingly, the service computing device 102, the merchant devices 128,the buyer devices 132, and/or the courier devices 136 are able tocommunicate over the one or more networks 106 using wired or wirelessconnections, and combinations thereof.

In the illustrated example, the service computing device 102 includes anorder processing module 140 that may be executed on the servicecomputing device 102 to provide, at least in part, the functionalityattributed to the service computing device 102. The order processingmodule 140 may receive the order information 108 from the buyers 110 andmay associate the order information 108 with buyer information 142 andmerchant information 144. For instance, based on buyer identifyinginformation that may be included with the order information 108, theorder processing module 140 may associate particular order information108 with a particular buyer account. The order processing module 140 mayaccess a buyer account included in the buyer information 142 to charge aparticular buyer account for a particular order.

Further, based on a particular merchant 114 identified by the orderinformation 108, the order processing module 140 may associate the orderinformation 108 with a merchant account of a particular merchant. Theorder processing module 140 may access the merchant account to determinecontact information for sending the order information 112 to the correctmerchant device 128 so that the particular merchant can receive andprovide confirmation of the order. The order processing module 140 mayfurther access the merchant account of the particular merchant to creditpayment to the particular merchant that prepares the order.

In addition, the order processing module 140 may access courierinformation 146 to determine courier contact information for sending theorder information to a particular courier 120 of the plurality ofcouriers 120 to determine whether the particular courier 120 is willingto accept the delivery job of delivering the order to the buyer. Theparticular courier 120 may use the courier application 138 on thecourier device 136 to receive a message with information about theorder, and to respond with acceptance of the delivery job if the job isaccepted. The particular courier 120 may subsequently pick up the orderfrom the particular merchant 114 and deliver the order to the particularbuyer 110 at a specified delivery location 126. When the courier 120 hascompleted delivery of the order to the delivery location 126, thecourier 1220 may use the courier application 138 to inform the orderprocessing module 140 that the delivery has been completed. The orderprocessing module 140 may access a courier account included in courierinformation 146 for the particular courier 120 to credit the courieraccount of the particular courier 120 with payment for the delivery job.

The order processing module 140 may store information associated witheach order as past order information 148. For instance the past orderinformation 148 may include a day of the week, date, and time at whicheach order is received from the respective buyer 110. The past orderinformation 148 may further include, for each order, merchantidentifying information; buyer identifying information; items 118ordered; the pickup location 124; the delivery location 126; preparationtime for the order; location of the courier 120 when the courieraccepted delivery of the order; time that the order was picked up by thecourier 120; time that the order was delivered; amount paid for theorder; estimated delivery time provided to the buyer by the serviceprovider; as well as other information, as discussed additionally below.

The service computing device 102 may further include a couriermanagement module 150 that may be executed by the service computingdevice 102 to manage the plurality of couriers 120. For instance, thecourier management module 150 may take into consideration the past orderinformation 148 and various other factors, such as weather, currentevents, date, season of the year, current traffic, etc. Based on theseconsiderations, the courier management module 150 may predict whichmerchants are likely to receive orders, the items that are likely to beordered, preparation times for the items, item spoilage times, orderdelivery times, and so forth.

As one example, the courier management module 150 may receive courierlocation information 152 from each courier 120 that is currently activein the courier network. For instance, an active courier may include acourier who is currently on duty or who has otherwise indicated awillingness to have delivery jobs assigned to him or her when new ordersare received from buyers. An inactive courier may include a courier whois currently off duty or who has otherwise not indicated that deliveryjobs should be assigned to him or her. As delivery jobs are received,the delivery jobs may be assigned to active couriers using variousdifferent techniques. For example, couriers may be assigned deliveryjobs in a round robin fashion, such that a courier who has gone thelongest without receiving a job is offered or assigned the next deliveryjob received. Various other factors may also be taken into considerationwhen assigning delivery jobs, such as distance of each courier from apickup location, whether a particular courier has been posted at thepickup location, is waiting at a nearby location, or the like. As oneexample, delivery jobs may be assigned using a round robin techniqueamong a subset of couriers who are within a threshold distance of thepickup location of a particular job that is to be assigned.

Based on the current location information 152, the past orderinformation 148, and various other considerations, the couriermanagement module 150 may determine recommended courier locations foroptimizing courier time and position. For instance, if adisproportionate number of couriers 120 are clustered in a particulararea of the service region, the courier management module 150 may send amessage including location information 154 to one or more particularcouriers to recommend that these couriers move to more optimal locationsproximate to where orders are predicted to be received in the nearfuture. For instance, the location information 154 may include arecommended location to which the courier management module 150recommends that the particular courier 120 move. In some examples, asdiscussed additionally below with respect to FIG. 3, the courier device136 may present one or more GUIs on a display (not shown in FIG. 1) ofthe courier device 136 to indicate the recommended location for thecourier 120. For instance, the GUI may present a map of a geographicregion within which the courier 120 is currently located. For instance,the GUI may present the current detected location of the courier 120, arecommended location, locations of other couriers, or the like.

In some cases, the courier management module 150 may recommend thatcouriers 120 move toward merchant pickup locations 124 that are likelyto become busy, e.g., during a lunch rush, dinner rush, etc.Additionally, or alternatively, the courier management module 150 maypost a courier 120 at a merchant pickup location 124 of a merchant thatis likely to receive an order. For example, if the courier managementmodule 150 has instructed the courier 120 to move toward a pickuplocation 124 of a particular merchant 114, and an order has not yet beenreceived by that merchant by the time the courier arrives, the couriermanagement module 150 may instruct the courier to wait at the particularpickup location 124 based on a prediction that an order will likely bereceived shortly by that particular merchant. As another alternative,the courier management module 150 may post a courier 120 in proximity toa plurality of merchants that are likely to receive orders, such as at alow-cost or no-cost waiting location. For instance, rather than beingposted at a pickup location 124 of particular merchant, the courier 120may be posted at a location between two or more merchants that arepredicted to receive orders.

In addition, based on the past order information 148 and various otherconditions, some of which are mentioned above, the courier managementmodule 150 may predict how many couriers are needed for upcoming timeperiods such as during the next half hour, next hour, remainder of theday, and so forth. As a result, the courier management module 150 maydetermine a number of couriers that should be activated or deactivatedfor the upcoming time periods. For example, if it is currently rainingin the service region, and the past order information 148 and otherconsiderations indicate that 200 orders are predicted to be received inthe next half hour, while only 170 couriers are currently active, thecourier management module 150 may activate or recommend activation of anadditional 30 couriers to be available to deliver the predicted numberof orders.

FIG. 2 is a conceptual block diagram 200 illustrating an example ofdetermining courier location recommendations and other courierinformation for use in managing a plurality of couriers according tosome implementations. In this example, the courier management module 150may receive the past order information 148 including merchant historicinformation 202, buyer historic information 204 and courier historicinformation 206. In addition, the courier management module 150 mayreceive current active courier locations 208, time of day and/or dateinformation 210, weather information 212, event information 214, and/orinactive courier information 216. Further, while several types ofinformation that may be used by the courier management module 150 areillustrated, in other examples, other or additional types of informationmay be used by the courier management module 150, as will be apparent tothose of skill in the art having the benefit of the disclosure herein.

The merchant historic information 202 may include historic orderinformation related to the merchants, e.g., various types of informationrelated to past orders filled by the merchants that participate in theservice of the service provider 104. For instance, the merchant historicinformation 202 may include a number of orders 218 received by eachmerchant at particular times on particular days of the week, particulardates, and the like. Further, the merchant historic information 202 mayinclude the items ordered 220 from each merchant for each order, thepreparation time 222 for each order, and the pickup location 224 foreach order.

In this example, the buyer historic information 204 includes historicorder information related to the buyers. Examples of buyer historicinformation 204 include order times 226, e.g., a time of day, day of theweek, and date on which each order was placed, delivery locations 228 towhich each order was delivered, and contract times 230. The contracttime 230 may be a time estimate provided by the service provider to thebuyer when the buyer originally places the order to indicate the time bywhich the order is to be delivered to the delivery location. The buyerhistoric information 204 may further include order conditions 232, suchas weather conditions when the order is placed, information regardingany local events taking place within the service region when the orderis placed, and the like.

Further, the courier historic information 206 may include historic orderinformation related to the couriers. For example, the courier historicinformation 206 may include location information 234, which may includea location of the courier when the order information is provided to thecourier, such as for determining how far the courier was from the pickuplocation when the courier is provided with the information for pickingup and delivering the order. Further, the courier historic information206 may include delivery times 236, which may indicate how long it tookeach courier to deliver each order after picking up the order from themerchant's pickup location, and delivery distances 238, which mayindicate how far each courier had to travel after picking up each orderto make delivery of the order. In addition, the courier historicinformation 206 may include wait times 240, which may indicate how longeach courier had to wait after delivering an order before picking upanother order. Furthermore, the merchant historic information 202, thebuyer historic information 204, and the courier historic information 206may include additional types of information, with the foregoing beingmerely several examples of the types of information that may be employedby the courier management module 150.

In some implementations, the courier management module 150 may employone or more computational models 242 for predicting which merchants willreceive orders during an upcoming period of time, such as the next 5minutes, next 15 minutes, next half hour, next hour, etc. Thus, based onthe past order information 148, and the other information discussedabove, such as the time, day, and date information 210, the weatherinformation 212, the event information 214, such as local events thatmay be taking place in the service region, and so forth, thecomputational model 242 may determine for an upcoming period of time,predicted order recipients 244, i.e., which merchants are likely toreceive orders, and predicted number of orders per recipient 246, i.e.,how many orders each merchant is likely to receive during the upcomingperiod of time. For instance, the predicted order recipients 244 andpredicted number of orders per recipient 246 may be based in part on themerchant historic information 202 and buyer historic information 204,such as number of orders 218 received by each merchant in the past,e.g., at particular order times 226 on particular days, particulardates, during particular types of weather or while other orderconditions 232 were in effect, items ordered 220 from each merchant foreach order, preparation times 222 for each order, and so forth. Thepredicted order recipients 246 and predicted number of orders perrecipient 248 may further be based at least in part on current or futureinformation, such as time, day and date information 210, weatherinformation 212, and event information 214. Based at least in part onthe computational model 242, the courier management module 150 maydetermine a confidence score for predicting when, where and how manyorders are expected to be received during an upcoming period of time.

Furthermore, in some examples the computational model 242 may be used todetermine, within a threshold level of confidence, the items that willbe ordered in each order and a predicted preparation time for eachorder. Thus, the computational model 242 may determine predicted items248 that are likely to be ordered from each predicted order recipient244. Based at least in part on the predicted items 248 and the predictedorder recipients 244, the computational model 242 may determinepredicted preparation times 250 for each predicted order. As oneexample, computational model 242 may include a trained statistical modelthat accounts for numerous pieces of information included in the pastorder information 148, as well as current information, such as time, dayand date information 210, weather information 212, current eventinformation 214, and the like. In some cases, the statistical model maybe initially trained using a set of training data, checked for accuracy,and then used for predicting when and where orders are likely to bereceived based on a confidence score exceeding a specified threshold ofconfidence. The statistical model may be periodically updated andre-trained based on new training data to keep the model up to date andaccurate. Examples of suitable statistical models that may beincorporated into the computational model 242 herein may includeregression models, such as linear and nonlinear regression models, andstochastic models, such as Markov models, hidden Markov models, and soforth.

Additionally, while the computational model 242 has been described asone example of a technique for predicting when, where and how manyorders are likely to be received, what items are likely to be ordered,and how long the orders are likely to take to prepare, numerous othertechniques, algorithms, decision-making rules, and the like, mayadditionally or alternatively be used for determining this information.Accordingly, implementations herein are not limited to use of acomputational model 242.

After the courier management module 150 has determined, for an upcomingperiod of time, predicted order recipients 244, a predicted number oforders per recipient 246, predicted items 248, and/or predictedpreparation times 250 per predicted order, the courier management module150 may apply courier management logic 252 to these predictions, such asto generate one or more courier location recommendations 254, determinea predicted number of couriers 258 that might be needed for an upcomingtime period, or other information that may be used to manage one or morecouriers of the plurality of couriers. For instance, the couriermanagement logic 252 may access or otherwise receive the current activecourier locations 208, and may determine recommended locations for theactive couriers based at least in part on the predicted order recipients244, predicted number of orders per recipient 246, and/or predictedpreparation times 250.

In some examples, the courier management logic 252 may include one ormore algorithms, one or more computational models, a plurality ofdecision-making rules, or the like, configured to determine recommendedlocations for particular couriers of the plurality of couriers. As oneexample, suppose that 50 couriers are currently clustered in a financialdistrict of a city, such as from having recently delivered orders tobuyers in the district. Further, suppose most of the predicted orderrecipients 244 are merchants with pickup locations located outside ofthe financial district. The courier management logic 252 may selectcertain couriers, and may send a message to each of these couriers tobegin moving toward respective pickup locations of predicted orderrecipients 244. Further, based on the predicted number of orders 246 perrecipient, the courier management logic 252 may instruct multiplecouriers to begin moving toward a particular predicted order recipient.For instance, if a particular merchant is likely to receive three ordersin the next 10 minutes, the courier management logic 252 may sendmessages to three couriers to recommend that the three couriers beginmoving toward the pickup location of the particular merchant.

In some examples, the courier management logic 252 may instruct selectedcouriers to move toward one or more particular merchant pickup locationsof merchants that are likely to receive orders. For instance, severalmerchants may be located near each other, and the courier may beinstructed to move toward a general location such as an intersection, aparking lot, or the like, that is between the several merchants, ratherthan to a particular merchant pickup location. If one of those merchantsreceives an order while the courier is enroute, the courier may be sentan additional message to pick up the order from the particular merchantthat has received the order. On the other hand, if no order is receivedwhile the courier is enroute, the courier may wait at the recommendedlocation until one of the merchants receives an order. Thus, rather thanbeing posted at a particular merchant location, the courier may beposted at a location between, or close to, two or more merchants thatare predicted to receive orders.

Alternatively, the courier management logic 252 may post an activecourier at the pickup location of a particular merchant that ispredicted to receive an order. For instance, the courier may be sentdirectly to, and posted at, the particular merchant's pickup location.The courier that is posted at the merchant pickup location may have apriority for delivering the next order received by the particularmerchant over other couriers that may be in the vicinity.

In addition, the predicted preparation time for orders placed withparticular merchants may be considered when determining toward whichmerchants the couriers are instructed to move. For example, if a firstmerchant is predicted to receive an order with a preparation time of 25minutes, while a second merchant is predicted to receive an order with apreparation time of 10 minutes, a courier may be instructed to beginmoving toward the second merchant, since it is likely that the wait timeof the courier at the second merchant will be smaller than at the firstmerchant. Further, it may be possible to send another courier to thefirst merchant after the first merchant has actually received an order,and still have the other courier arrive at the first merchant before theorder is ready for pickup. Accordingly, rather than posting couriers atthe first merchant, or sending couriers toward the first merchant, thecouriers may be posted at or sent toward the second merchant, or othermerchants predicted to have shorter preparation times. As anotherexample, if the first merchant and second merchant are located near toeach other, and a first courier is substantially further from the twomerchants than a second courier, the first courier may be instructed tomove toward the second merchant and the second courier may be instructedto move toward the first merchant based on a prediction that the waittimes for each courier at each respective merchant may be about thesame, e.g., by the time the second courier arrives at the firstmerchant, an order may have been received and may be nearing completionof preparation.

Further, in a situation in which there are an insufficient number ofpredicted orders in relation to a number of currently active couriers,or in a situation in which past order information is insufficient or notused, the courier management logic 252 may perform operations todistribute the couriers across the service region based on a geographicdistribution of the merchant pickup locations in the service region. Forexample, if a majority of the couriers are currently in the financialdistrict, but there are few merchants located in this district, thecourier management logic 252 may send instructions for most of thecouriers to move toward other areas of the city where a larger number ofmerchants are located. Thus, based on the geographic distribution ofmerchant pickup locations in the service region, the courier managementlogic 252 may move couriers to different locations to un-bunch thecouriers and distribute the couriers across a plurality of merchantlocations in the service region. Accordingly, the courier managementlogic 252 may make the network of couriers more resilient despiteuncertainty as to where orders will be received next.

In addition, the predicted number of orders per recipient 246 over anupcoming period of time may be used by the courier management logic 252to determine a predicted number of couriers 256 for an upcoming periodof time. Based on this, the courier management logic 252 may recommendor perform courier activations/deactivations 258. For example, if 150orders are predicted to be received over the next half hour, and only125 couriers are currently active, the courier management logic 258 maytake one or more steps toward activation of a number of additionalcouriers. To activate additional couriers, the courier management logic252 may obtain inactive courier information 216, such as by sendingmessages to inactive couriers to determine whether the inactive couriersare interested in becoming active and to determine current locations ofinactive couriers.

As one example, additional couriers may be activated by the couriermanagement logic 252 sending respective messages to courier devices of aplurality of couriers who are currently inactive. The inactive couriersmay receive the respective messages, and those that are interested inbecoming active may respond and report their current location. In somecases, a courier may be selected for activation based at least in parton the current location of the individual courier. For instance, basedon the current location, the newly activated courier may be assigned topick up a particular order, such as at a merchant location that is nearto the current location of the newly activated courier.

Further, if the courier management logic 252 predicts the need toactivate additional couriers during one or more upcoming time periods,the courier management logic 252 may periodically ping the courierdevices of inactive couriers to determine their respective currentlocations. For instance, the service provider may want to add couriersthat are near to a particular pickup location to ensure that pickup anddelivery occurs on time. Therefore, the courier management logic 252 mayperiodically ping inactive couriers to determine the couriers' currentlocations by sending respective messages to the courier devices.Couriers who are interested in being activated may allow their devicesto respond with their location information, while those who are notinterested in being activated may keep their location informationprivate by not responding. The courier management logic 252 may selectparticular couriers to which to send activation offers based in part onthe current location of the inactive couriers being near to a merchantthat has already received an order, or that is predicted to receive anorder during an immediately upcoming time period.

In addition to, or as an alternative to, sending periodic pings, thecourier management logic 252 may determine the usual locations of therespective inactive couriers and may use this information to sendmessages to particular inactive couriers to determine whether thecouriers would like to be activated for particular delivery jobs thathave pickup locations near the couriers' usual location. For instance,the location information 234 in the courier historic information 206 mayindicate where couriers are located when they are activated or wherethey are located when they respond to a periodic ping. Further, thecourier account information for each courier may indicate the homeaddress of each courier. The courier management logic 252 may determinethat the courier lives at a certain location, and may expect the courierto be near that location with a 75 percent probability, such as based onlocation information received in response to past pings sent to theparticular courier and/or location information indicating the courierwas at that location when activated 75 percent of the time on previousoccasions. Thus, the courier management logic 252 may limit the couriersto whom location pings and/or activation offers are sent to thosecouriers that are predicted to be within a threshold distance to adesired location, such as a pickup location where an order has beenreceived or where an order is predicted to be received.

Based on a prediction of receiving orders at one or more particularmerchants at a particular time, the service can activate an inactivecourier and then instruct the newly activated courier to move toward, beposted at, or be posted near, one or more merchants that are predictedto receive orders. As another example, a courier on one side of the citywhere a low number of orders are predicted to be received may bedeactivated and a courier on another side of the city where a highnumber of orders are predicted to be received may be activated. Thus, acourier essentially can be moved from a low-demand location to ahigh-demand location based on activation time, rather than based onactual travel time. In some examples, incentives can be provided tocouriers for any of activations, moves, posts, and deactivations. Forinstance, the courier that is deactivated may be offered a monetary orother incentive for accepting deactivation. Accordingly, the service isable to manage a plurality of couriers by activating, moving, posting,and deactivating the couriers in view of a changing predicted orderflow.

In addition, the service provider may be able to offer a discount on aparticular order when a courier is already located near the pickuplocation of a merchant with which the order is being placed. Forexample, if the service provider typically pays couriers for travel to apickup location, in addition to payment for travel to a deliverylocation, then the service provider may save on this cost when thecourier is already near to the pickup location, and may pass thissavings on to the buyer.

Further, in some cases where there a predicted shortage of couriers fora short period of time, rather than activating new couriers, the couriermanagement logic may attempt to schedule multiple pickups and deliverieswith a single courier. As one example, if a particular courier isenroute from a pickup location to a delivery location for a first order,and if another merchant close to the courier's route has a second orderthat will be ready for pick up when the courier is nearby, the couriermay be rerouted to pick up the second order. Each order may have anassociated spoilage time and contract time. The spoilage time may be thetime between when the order is prepared and when the ordered items areconsidered to be of degraded quality, e.g., cold, soggy, melted, wilted,oxidized, or otherwise less palatable than would be normally expected bythe buyer. The contract time is the time by which the order wasoriginally estimated to be delivered to the buyer when the buyer placedthe order. Accordingly, if the spoilage time and contract time of thefirst order permit, the courier may pick up one or more additionalorders from pickup locations that may be nearby to the courier's route,and which may be delivered to one or more different delivery locationswithin respective contract times and spoilage times of the one or moreadditional orders.

As one example, suppose that the courier picks up a first order of aturkey sandwich and a salad with a spoilage time of 30 minutes and acontract time that expires 25 minutes from the pickup time. Further,suppose that along the route to the first delivery location for thefirst order, the courier is instructed to pick up a second order of apizza with a spoilage time of 20 minutes and a contract time thatexpires 20 minutes from the pickup time. For example, the second pickuplocation may be within a first threshold distance from the route of thecourier, and the second delivery location may be within a secondthreshold distance from the first delivery location. The courier maylose several minutes stopping to pick up the second order, but is stillable to deliver the first order to the first delivery location and thesecond order to the second delivery location before the expiration ofthe respective spoilage times or contract times of the two orders.Additionally, in some cases, enabling couriers to pick up and delivermultiple orders may be executed whenever the timing and distancethresholds permit, rather than merely during a temporary shortage ofcouriers.

Furthermore, with respect to deactivations, the courier management logic252 may predict that there is currently an oversupply of couriers basedon the predicted number of orders 246 per recipient likely to bereceived over an upcoming time period. In response, the couriermanagement logic 252 may deactivate one or more couriers to reduce thenumber of active couriers. As one example, if a courier has only a halfhour left in a shift, the courier management logic 252 may offer thecourier a nominal amount to be deactivated. Additionally, oralternatively, the courier management logic 252 may select particularcouriers for deactivation based on any of other various considerations,such as the length of time a particular courier has been active thatday, current location of the courier, predicted locations of futureorders, current locations of other active couriers, courier performance,courier seniority, and so forth.

FIG. 3 illustrates an example GUI 300 that may be presented on a display302 associated with the courier device according to someimplementations. The GUI 300 presents information, such as a courierlocation recommendation 254, received from the service computing device102 for instructing the associated courier to move toward or to aparticular location. The courier location recommendation 254 may includean instruction 304 for the courier to move toward a general location,such as an area or neighborhood of a city, or to a specific location,such as an intersection of two streets, a specific address, a specificlandmark, a pickup location of a particular merchant, or the like.

In the illustrated example, the GUI 300 includes a map 306 that maypresent a first icon 308 corresponding to a current indicated locationof the courier, such as based on GPS (global positioning system)information or other location information received from the courierdevice. The map 306 may further present a second icon 310 correspondingto a target location to which the courier is instructed to proceed. TheGUI 300 may further present a text version 312 of the courier's currentlocation and an estimated travel time 314 to the recommended location,or the like. In addition, as indicated at 316, the GUI 300 may requestthat the courier acknowledge receipt of the location recommendation. Forinstance, if the courier does not acknowledge receipt of the locationrecommendation within a threshold period of time, the service computingdevice may send the location recommendation to a different courier.Alternatively, the courier management logic may monitor the location ofthe courier device based on location information received from thecourier application to determine whether the courier is moving towardthe recommended location.

FIG. 4 illustrates an example GUI 400 that may be presented on thedisplay 302 associated with the courier device according to someimplementations. The GUI 400 may be presented to enable the serviceprovider to make an initial payment offer for a delivery job, offer thedelivery job to several different couriers, and, if necessary, increasethe payment offer until the offer is accepted by one of the couriers.Thus, the GUI 400 includes a delivery job offer 402 that includes apayment offer 404 for the delivery job, which in this example is $16.Further, the GUI 400 may provide some details of the delivery job, suchas the current indicated location 406 of the courier; distance 408 to apickup location; estimated wait time 410 until the order is ready; anddistance 412 from the pickup location to the delivery location.Additionally, the GUI 400 may present a map 414, which may present someadditional delivery job details, such as the current indicated location416 of the courier, the pickup location, and the delivery location.However, in the illustrated example, the pickup location and thedelivery location are not revealed on the map 414 until the courier hasaccepted the offer.

In addition, the GUI 400 may include interactive operability to enablethe courier to accept or decline the offered delivery job. For example,the GUI 400 may include a delineated area as a first virtual control 418that the courier may tap on or otherwise select to accept the deliveryjob offer. The first virtual control 418 may provide a time indication420 of how long the courier has to accept the offer before the offer isrescinded. For instance, the time indication 420 may provide a visualreal-time countdown. Further, the GUI 400 may include a second virtualcontrol 422 that the courier may tap on, or otherwise select to declinethe delivery job offer.

As one example, the service may offer the delivery job to one or morecouriers, such as in a round robin fashion. If the first courier doesnot accept the offer within a specified time, the service may offer thejob to a next courier within a threshold distance of the pickuplocation. The service may continue to offer the job to other courierswithin the threshold distance of the pickup location in a round robinmanner until one of the couriers accepts the job. If no couriers acceptthe job for the offered price, the service may increase the amount ofpay offered for the job, and may again send the job offer to thecouriers. As an alternative, the service may send the job offer to allavailable couriers within a threshold distance of the pickup location,and may award the job to the courier that responds first. In someexamples, the threshold distance may be determined based at least inpart on how soon the order is expected to be ready for pickup. Forexample, if the expected time until the order is ready is larger, thethreshold distance may be larger.

As still another alterative, the couriers may be provided theopportunity to bid on the amount they will accept for a particulardelivery job. For example, the service may send the job details tomultiple couriers. The couriers may have a threshold time in which toenter a bid for how much they are willing to perform the delivery job.The service may award the delivery job to the courier that offers toperform the job for the lowest payment price.

FIGS. 5 and 6 are flow diagrams illustrating example processes formanaging a plurality of couriers according to some implementations. Forinstance, the processes of FIGS. 5 and 6 may enable crowdsourcing of aplurality of couriers for providing a delivery service in which, at agiven time, some of the couriers are active for receiving deliveryassignments and some of the couriers are inactive or otherwise notcurrently accepting delivery assignments. The processes are illustratedas collections of blocks in logical flow diagrams, which represent asequence of operations, some or all of which can be implemented inhardware, software or a combination thereof. In the context of software,the blocks may represent computer-executable instructions stored on oneor more computer-readable media that, when executed by one or moreprocessors, program the processors to perform the recited operations.Generally, computer-executable instructions include routines, programs,objects, components, data structures and the like that performparticular functions or implement particular data types. The order inwhich the blocks are described should not be construed as a limitation.Any number of the described blocks can be combined in any order and/orin parallel to implement the process, or alternative processes, and notall of the blocks need be executed. For discussion purposes, theprocesses are described with reference to the environments,architectures and systems described in the examples herein, although theprocesses may be implemented in a wide variety of other environments,architectures and systems.

FIG. 5 is a flow diagram illustrating an example process 500 formanaging couriers based in part on past order history according to someimplementations. In some examples, the process may be executed by theservice computing device 102, or by one or more other suitable computingdevices.

At 502, the computing device determines a pickup location associatedwith each merchant of a plurality of merchants within a service region.For instance, the computing device may determine pickup locations of theplurality of merchants based on merchant addresses included in themerchant information 144 discussed above with respect to FIG. 1.

At 504, the computing device may determine, for a time of day and a dayof a week, orders received for the items provided by individualmerchants in the service region over a past period of time. For example,the computing device may access past order information, such as historicorder information including number of orders received by each merchant,items ordered from each merchant, preparation times for each orderreceived by each merchant, pickup location for each merchant, andvarious other order-related information, as discussed above with respectto FIGS. 1-3.

At 506, the computing device may determine, for a particular time of dayand day of the week, merchants that are predicted to receive orders. Forinstance, the computing device may apply a computational model, one ormore algorithms, one or more deterministic rules, or other operationallogic for predicting which merchants are likely to receive orders for anupcoming time of day and day of the week and taking into account currentconditions, such as current weather, current local events, current dateor time of the year, and so forth.

At 508, the computing device may determine, for each merchant predictedto receive an order, a predicted order preparation time associated withthe order. For example, the computing device may predict which items arelikely to be ordered from the merchants predicted to receive orders, maydetermine the past preparation times when the items were ordered fromthe merchants, and may predict preparation times based on the pastpreparation times and other considerations, such as current conditions.

At 510, the computing device may receive electronic communications fromcourier devices of couriers who are active for receiving delivery jobs.For example, the computing device may be able to communicate over theone or more networks with a plurality of courier devices, some of whichare associated with active couriers and some of which are associatedwith inactive couriers. The computing device may receive signals orother electronic communications from a subset of the courier devicesassociated with a subset of respective couriers who are active, or whodesire to become active, and who are willing to receive assignments fordelivery jobs.

At 512, the computing device may receive location information obtainedfrom one or more location sensors associated with each courier device ofan active courier. For instance, a subset of courier devices associatedwith active couriers may communicate with the computing device, and maysend location information obtained from one or more location sensorsassociated with each courier device. The location information mayindicate respective geographic locations of each of the courier devices.

At 514, the computing device may determine locations of the courierdevices associated with couriers within the service region. Forinstance, the courier devices of active couriers may report theircurrent locations to the service computing device based on informationfrom one or more on-board sensors, such as based on GPS information froma GPS device and/or other location indicative information, such asnearby cell towers, wireless connection points, and the like, determinedthrough one or more communication interfaces. Accordingly, based atleast in part on the location information received from the subset ofcourier devices, the computing device may determine respective indicatedlocations of the subset of courier devices within the service region.

At 516, the computing device may determine recommended locations for thecouriers based at least in part on the pickup locations of the merchantspredicted to receive orders, the predicted order preparation time foreach order, and the locations of the plurality of courier devices. Forinstance, as discussed above, the computing device may selectrecommended locations for individual couriers to move toward locationsof merchants predicted to receive orders, be posted at locations ofmerchants predicted to receive orders, or be posted near two or moremerchants predicted to receive orders.

At 518, the computing device may send, to the couriers, the recommendedlocations to which the couriers are to move to be in position forpicking up items from respective merchants predicted to receive orders.For example, the computing device may send the recommended location tothe courier application, which may present the recommended location tothe courier in a GUI on the display of the courier device.

FIG. 6 is a flow diagram illustrating an example process 600 foractivating or deactivating couriers according to some implementations.In some examples, the process may be executed by the service computingdevice or by another suitable computing device.

At 602, the computing device determines, for a time of day and a day ofa week, orders received for individual merchants of a plurality ofmerchants over a past period of time. For example, the computing devicemay access past order information, such as historic order informationincluding number of orders received by each merchant, items ordered fromeach merchant, preparation times for each order received by eachmerchant, pickup location for each merchant, courier locations whenorders were assigned, and various other order-related information, asdiscussed above with respect to FIGS. 1-3.

At 604, the computing device may determine, for a particular time of dayand/or a day of the week, based at least in part on the orders receivedfor the individual merchants over the past period of time, a predictedtotal number of orders. For example, the computing device may apply acomputational model, one or more algorithms, deterministic rules, orother logic for predicting a total number of orders likely to bereceived for the time of day and day of the week, while also taking intoconsideration other conditions, such as weather, local events, and thelike.

At 606, the computing device may receive, from a subset of courierdevices, electronic communications indicating that a subset ofrespective couriers associated with the courier devices are active andable to receive assignments for delivery jobs. For example, thecomputing device may be able to communicate over the one or morenetworks with a plurality of courier devices, some of which areassociated with active couriers and some of which are associated withinactive couriers. The computing device may receive signals or otherelectronic communications from a subset of the courier devicesassociated with a subset of respective couriers who are active, or whodesire to become active, and who are willing to receive assignments fordelivery jobs.

At 608, the computing device may compare, for the time of day and day ofthe week, a number of active couriers with the total number of orderspredicted to be received. The computing device may determine a totalnumber of active couriers through communication with the courierapplications on each courier device, and may compare the number ofactive couriers, or an expected number of active couriers for a time ofday and day of the week with the predicted total number of orders forthe same time of day and day of the week.

At 610, the computing device may determine based on the comparison,whether there are too many or too few active couriers. For example,there may be too few couriers if the number of predicted orders is morethan a threshold amount larger than the number of active couriers forthe particular time of day and day of the week. As another example,there may be too many active couriers if the number of active couriersis more than a threshold amount larger than the predicted number oforders.

At 612, if the computing device determines that there are too few activecouriers, the computing device may send a message to a courier deviceassociated with at least one inactive courier for activating theinactive courier. For example, the computing device may send messages toa one or more courier devices associated with inactive couriers todetermine a current location of the inactive couriers and/or todetermine whether the inactive couriers are interested in becomingactive to start delivering orders.

At 614, on the other hand, if the computing device determines that thereare too many active couriers, the computing device may send a message toa courier device associated with at least one active courier foractivating the inactive courier. For example, the computing device mayinitial send a message to a plurality of courier devices to determine ifany couriers are interested in becoming inactive to no longer beassigned delivery jobs. If a sufficient number of couriers respond,those couriers may be made inactive. In some cases, incentives can beprovided to couriers to accept deactivation earlier than originallyexpected, such as for ending a shift early. Numerous otherconsiderations may be taken into account for selecting couriers fordeactivation, as discussed above.

The example processes described herein are only examples of processesprovided for discussion purposes. Numerous other variations will beapparent to those of skill in the art in light of the disclosure herein.Additionally, while the disclosure herein sets forth several examples ofsuitable frameworks, architectures and environments for executing theprocesses, implementations herein are not limited to the particularexamples shown and discussed. Furthermore, this disclosure providesvarious example implementations, as described and as illustrated in thedrawings. However, this disclosure is not limited to the implementationsdescribed and illustrated herein, but can extend to otherimplementations, as would be known or as would become known to thoseskilled in the art.

FIG. 7 illustrates select components of the service computing device 102that may be used to implement some functionality of the couriermanagement and order processing services described herein. The servicecomputing device 102 may include one or more servers or other types ofcomputing devices that may be embodied in any number of ways. Forinstance, in the case of a server, the modules, other functionalcomponents, and data may be implemented on a single server, a cluster ofservers, a server farm or data center, a cloud-hosted computing service,and so forth, although other computer architectures may additionally oralternatively be used.

Further, while the figures illustrate the components and data of theservice computing device 102 as being present in a single location,these components and data may alternatively be distributed acrossdifferent computing devices and different locations in any manner.Consequently, the functions may be implemented by one or more servicecomputing devices, with the various functionality described abovedistributed in various ways across the different computing devices.Multiple service computing devices 102 may be located together orseparately, and organized, for example, as virtual servers, server banksand/or server farms. The described functionality may be provided by theservers of a single entity or enterprise, or may be provided by theservers and/or services of multiple different entities or enterprises.

In the illustrated example, each service computing device 102 mayinclude one or more processors 702, one or more computer-readable media704, and one or more communication interfaces 706. Each processor 702may be a single processing unit or a number of processing units, and mayinclude single or multiple computing units or multiple processing cores.The processor(s) 702 can be implemented as one or more microprocessors,microcomputers, microcontrollers, digital signal processors, centralprocessing units, state machines, logic circuitries, and/or any devicesthat manipulate signals based on operational instructions. For instance,the processor(s) 702 may be one or more hardware processors and/or logiccircuits of any suitable type specifically programmed or configured toexecute the algorithms and processes described herein. The processor(s)702 can be configured to fetch and execute computer-readableinstructions stored in the computer-readable media 704, which canprogram the processor(s) 702 to perform the functions described herein.

The computer-readable media 704 may include volatile and nonvolatilememory and/or removable and non-removable media implemented in any typeof technology for storage of information, such as computer-readableinstructions, data structures, program modules, or other data. Suchcomputer-readable media 704 may include, but is not limited to, RAM,ROM, EEPROM, flash memory or other memory technology, optical storage,solid state storage, magnetic tape, magnetic disk storage, RAID storagesystems, storage arrays, network attached storage, storage areanetworks, cloud storage, or any other medium that can be used to storethe desired information and that can be accessed by a computing device.Depending on the configuration of the service computing device 102, thecomputer-readable media 704 may be a type of computer-readable storagemedia and/or may be a tangible non-transitory media to the extent thatwhen mentioned, non-transitory computer-readable media exclude mediasuch as energy, carrier signals, electromagnetic waves, and signals perse.

The computer-readable media 704 may be used to store any number offunctional components that are executable by the processors 702. In manyimplementations, these functional components comprise instructions orprograms that are executable by the processors 702 and that, whenexecuted, specifically configure the one or more processors 702 toperform the actions attributed above to the service computing device102. Functional components stored in the computer-readable media 704 mayinclude the order processing module 140 and the courier managementmodule 150. Additional functional components stored in thecomputer-readable media 704 may include an operating system 708 forcontrolling and managing various functions of the service computingdevice 102.

In addition, the computer-readable media 704 may store data used forperforming the operations described herein. Thus, the computer-readablemedia 704 may store the buyer information 142, including buyer accounts710, the merchant information 144, including merchant accounts 712, andthe courier information 146, including courier accounts 714. Further,the computer-readable media may include the past order information 146,such as the merchant historic information 202, the buyer historicinformation 204 and the courier historic information 206. The servicecomputing device 102 may also include or maintain other functionalcomponents and data not specifically shown in FIG. 7, such as othermodules and data 716, which may include programs, drivers, etc., and thedata used or generated by the functional components. Further, theservice computing device 102 may include many other logical,programmatic and physical components, of which those described above aremerely examples that are related to the discussion herein.

The communication interface(s) 706 may include one or more interfacesand hardware components for enabling communication with various otherdevices, such as over the network(s) 106. For example, communicationinterface(s) 706 may enable communication through one or more of theInternet, cable networks, cellular networks, wireless networks (e.g.,Wi-Fi) and wired networks, as well as close-range communications such asBLUETOOTH®, BLUETOOTH® low energy, and the like, as additionallyenumerated elsewhere herein.

The service computing device 102 may further be equipped with variousinput/output (110) devices 718. Such I/O devices 718 may include adisplay, various user interface controls (e.g., buttons, joystick,keyboard, mouse, touch screen, etc.), audio speakers, connection portsand so forth.

FIG. 8 illustrates select example components of the courier device 136that may implement the functionality described above according to someexamples. The courier device 136 may be any of a number of differenttypes of portable computing devices. Some examples of the courier device136 may include smart phones and mobile communication devices; tabletcomputing devices; laptops, netbooks and other portable computers;wearable computing devices and/or body-mounted computing devices, whichmay include watches and augmented reality devices, such as helmets,goggles or glasses; and any other portable device capable of sendingcommunications and performing the functions according to the techniquesdescribed herein.

In the example of FIG. 8, the courier device 136 includes componentssuch as at least one processor 802, one or more computer-readable media804, one or more communication interfaces 806, and one or moreinput/output (I/O) devices 808. Each processor 802 may itself compriseone or more processors or processing cores. For example, the processor802 can be implemented as one or more microprocessors, microcomputers,microcontrollers, digital signal processors, central processing units,state machines, logic circuitries, and/or any devices that manipulatesignals based on operational instructions. In some cases, the processor802 may be one or more hardware processors and/or logic circuits of anysuitable type specifically programmed or configured to execute thealgorithms and processes described herein. The processor 802 can beconfigured to fetch and execute computer-readable processor-executableinstructions stored in the computer-readable media 804.

Depending on the configuration of the courier device 136, thecomputer-readable media 804 may be an example of tangible non-transitorycomputer storage media and may include volatile and nonvolatile memoryand/or removable and non-removable media implemented in any type oftechnology for storage of information such as computer-readableprocessor-executable instructions, data structures, program modules orother data. The computer-readable media 804 may include, but is notlimited to, RAM, ROM, EEPROM, flash memory, solid-state storage,magnetic disk storage, optical storage, and/or other computer-readablemedia technology. Further, in some cases, the courier device 136 mayaccess external storage, such as RAID storage systems, storage arrays,network attached storage, storage area networks, cloud storage, or anyother medium that can be used to store information and that can beaccessed by the processor 802 directly or through another computingdevice or network. Accordingly, the computer-readable media 804 may becomputer storage media able to store instructions, modules or componentsthat may be executed by the processor 802. Further, when mentioned,non-transitory computer-readable media exclude media such as energy,carrier signals, electromagnetic waves, and signals per se.

The computer-readable media 804 may be used to store and maintain anynumber of functional components that are executable by the processor802. In some implementations, these functional components compriseinstructions or programs that are executable by the processor 802 andthat, when executed, implement operational logic for performing theactions and services attributed above to the courier device 136.Functional components of the courier device 136 stored in thecomputer-readable media 804 may include the courier application 138, asdiscussed above, which may present the courier with one or more GUIs,some examples of which are described above. Additional functionalcomponents may include an operating system 810 for controlling andmanaging various functions of the courier device 136 and for enablingbasic user interactions with the courier device 136.

In addition, the computer-readable media 804 may also store data, datastructures and the like, that are used by the functional components.Depending on the type of the courier device 136, the computer-readablemedia 804 may also optionally include other functional components anddata, such as other modules and data 812, which may includeapplications, programs, drivers, etc., and the data used or generated bythe functional components. Further, the courier device 136 may includemany other logical, programmatic and physical components, of which thosedescribed are merely examples that are related to the discussion herein.

The communication interface(s) 806 may include one or more interfacesand hardware components for enabling communication with various otherdevices, such as over the network(s) 106 or directly. For example,communication interface(s) 806 may enable communication through one ormore of the Internet, cable networks, cellular networks, wirelessnetworks (e.g., Wi-Fi) and wired networks, as well as close-rangecommunications such as BLUETOOTH®, BLUETOOTH® low energy, and the like,as additionally enumerated elsewhere herein.

FIG. 8 further illustrates that the courier device 136 may include thedisplay 302. Depending on the type of computing device used as thecourier device 136, the display may employ any suitable displaytechnology. For example, the display 302 may be a liquid crystaldisplay, a plasma display, a light emitting diode display, an OLED(organic light-emitting diode) display, an electronic paper display, orany other suitable type of display able to present digital contentthereon. In some examples, the display 302 may have a touch sensorassociated with the display 302 to provide a touchscreen displayconfigured to receive touch inputs for enabling interaction with a GUIpresented on the display 302. Accordingly, implementations herein arenot limited to any particular display technology. Alternatively, in someexamples, the courier device 136 may not include a display.

The courier device 136 may further include the one or more I/O devices808. The I/O devices 808 may include speakers, a microphone, a camera,and various user controls (e.g., buttons, a joystick, a keyboard, akeypad, etc.), a haptic output device, and so forth. Other componentsincluded in the courier device 136 may include various types of sensors,which may include a GPS device 814 able to indicate locationinformation, as well as other sensors (not shown) such as anaccelerometer, gyroscope, compass, proximity sensor, and the like.Additionally, the courier device 136 may include various othercomponents that are not shown, examples of which include removablestorage, a power source, such as a battery and power control unit, andso forth. Further, the buyer device 132 and/or the merchant device 128may include hardware structures and components similar to thosedescribed for the courier device, but with one or more differentfunctional components.

Various instructions, methods and techniques described herein may beconsidered in the general context of computer-executable instructions,such as program modules stored on computer-readable media, and executedby the processor(s) herein. Generally, program modules include routines,programs, objects, components, data structures, etc., for performingparticular tasks or implementing particular abstract data types. Theseprogram modules, and the like, may be executed as native code or may bedownloaded and executed, such as in a virtual machine or otherjust-in-time compilation execution environment. Typically, thefunctionality of the program modules may be combined or distributed asdesired in various implementations. An implementation of these modulesand techniques may be stored on computer storage media or transmittedacross some form of communication media.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described. Rather,the specific features and acts are disclosed as example forms ofimplementing the claims.

What is claimed:
 1. A method comprising: accessing, by one or moreprocessors, past order information for a plurality of past ordersreceived in the past for a plurality of merchants and delivered bydelivery agents; determining, for an upcoming time period, based atleast in part on executing at least one of a computational model or afirst algorithm that takes into account the past orders received byindividual merchants of the plurality of merchants over a past period oftime, a predicted number of orders predicted to be received for anupcoming time period for the individual merchants of the plurality ofmerchants; determining, based at least on geolocation informationreceived from respective location sensors associated with respectivedelivery agent devices of a plurality of delivery agent devices,respective indicated geographic locations of the plurality of deliveryagent devices, wherein each delivery agent device is associated with arespective delivery agent; executing delivery agent management logic tocompare, for the upcoming time period, a number of active deliveryagents with the predicted number of orders predicted to be received forthe upcoming time period; executing a second algorithm to determine,based on the respective indicated geographic locations of the pluralityof delivery agent devices and pickup locations of the individualmerchants predicted to receive orders, at least one location to which toreposition at least one delivery agent; and sending, based on at leastone of results of the delivery agent management logic or results of thesecond algorithm, a message to a first delivery agent device associatedwith a first delivery agent to cause at least: activation of the firstdelivery agent from inactive status to active status; relocation of thefirst delivery agent from a current location toward a differentlocation; posting of the first delivery agent at a specified location;or deactivation of the first delivery agent from active status toinactive status.
 2. The method as recited in claim 1, further comprisingdetermining, based on the computational model and the orders receivedfor the individual merchants over the past period of time, one or moreitems predicted to be included in the orders predicted to be receivedfor the individual merchants; determining, for the one or more itemspredicted to be included in the orders, respective predicted orderpreparation times associated with the orders; and determining the atleast one location to which to reposition the at least one deliveryagent based at least in part on the respective predicted orderpreparation times.
 3. The method as recited in claim 1, furthercomprising determining the predicted number of orders predicted to bereceived for an upcoming time period for the individual merchants of theplurality of merchants based at least in part on at least one of:weather information for weather in a service region of the individualmerchants; or event information for events taking place in the serviceregion.
 4. The method as recited in claim 1, wherein, based at least onthe result of the delivery agent management logic indicating anundersupply of delivery agents are currently active, the message to thefirst delivery agent device is to a currently inactive delivery agent tocause activation of the first delivery agent from inactive status toactive status.
 5. The method as recited in claim 1, wherein, based atleast on the result of the delivery agent management logic indicating anoversupply of delivery agents are currently active, the message to thefirst delivery agent device is to a currently active delivery agent tocause deactivation of the first delivery agent from active status toinactive status.
 6. The method as recited in claim 1, further comprisingdetermining, for the upcoming time period, the pickup locations of theindividual merchants predicted to receive orders for the upcoming timeperiod; and sending the message to the first delivery agent device basedat least on a current location of the first delivery agent device withrespect to the pickup locations of the individual merchants predicted toreceive orders.
 7. A method comprising: accessing, by one or moreprocessors, past order information for a plurality of past ordersreceived in the past for a plurality of merchants and delivered bydelivery agents; determining, for an upcoming time period, based atleast in part on executing at least one of a computational model or afirst algorithm that takes into account the past orders received byindividual merchants of the plurality of merchants over a past period oftime, a predicted number of orders predicted to be received for anupcoming time period for the individual merchants of the plurality ofmerchants; determining, based at least on geolocation informationreceived from respective location sensors associated with respectivedelivery agent devices of a plurality of delivery agent devices,respective indicated geographic locations of the plurality of deliveryagent devices; executing a second algorithm to determine, based on therespective indicated geographic locations of the plurality of deliveryagent devices and pickup locations of the individual merchants predictedto receive orders, at least one location to which to reposition at leastone delivery agent; and sending, based at least on results of the secondalgorithm, a message to a first delivery agent device associated with afirst delivery agent to cause at least one of: relocation of the firstdelivery agent from a current location toward a different location; orposting of the first delivery agent at a specified location.
 8. Themethod as recited in claim 7, further comprising: executing deliveryagent management logic to compare, for the upcoming time period, anumber of active delivery agents with the predicted number of orderspredicted to be received for the upcoming time period; and sending,based at least on results of the delivery agent management logic, acommunication to the first delivery agent device to cause one of:activation of the first delivery agent from inactive status to activestatus; or deactivation of the first delivery agent from active statusto inactive status.
 9. The method as recited in claim 8, wherein, basedat least on the result of the delivery agent management logic indicatingan undersupply of delivery agents are currently active, thecommunication to the first delivery agent device is to a currentlyinactive delivery agent to cause activation of the first delivery agentfrom inactive status to active status.
 10. The method as recited inclaim 8, wherein, based at least on the result of the delivery agentmanagement logic indicating an oversupply of delivery agents arecurrently active, the communication to the first delivery agent deviceis to a currently active delivery agent to cause deactivation of thefirst delivery agent from active status to inactive status.
 11. Themethod as recited in claim 7, further comprising determining, based onthe computational model and the orders received for the individualmerchants over the past period of time, one or more items predicted tobe included in the orders predicted to be received for the individualmerchants; determining, for the one or more items predicted to beincluded in the orders, respective predicted order preparation timesassociated with the orders; and determining the at least one location towhich to reposition the at least one delivery agent based at least inpart on the respective predicted order preparation times.
 12. The methodas recited in claim 7, further comprising determining the predictednumber of orders predicted to be received for an upcoming time periodfor the individual merchants of the plurality of merchants based atleast in part on at least one of: weather information for weather in aservice region of the individual merchants; or event information forevents taking place in the service region.
 13. The method as recited inclaim 7, further comprising determining, for the upcoming time period,the pickup locations of the individual merchants predicted to receiveorders for the upcoming time period; and sending the message to thefirst delivery agent device based at least on a current location of thefirst delivery agent device with respect to the pickup locations of theindividual merchants predicted to receive orders.
 14. A methodcomprising: accessing, by one or more processors, past order informationfor a plurality of past orders received in the past for a plurality ofmerchants and delivered by delivery agents; determining, for an upcomingtime period, based at least in part on executing at least one of acomputational model or a first algorithm that takes into account thepast orders received by individual merchants of the plurality ofmerchants over a past period of time, a predicted number of orderspredicted to be received for an upcoming time period for the individualmerchants of the plurality of merchants; executing delivery agentmanagement logic to compare, for the upcoming time period, a number ofactive delivery agents with the predicted number of orders predicted tobe received for the upcoming time period; and sending, based at least onresults of the delivery agent management logic, a message to a firstdelivery agent device associated with a first delivery agent to causeone of: activation of the first delivery agent from inactive status toactive status; or deactivation of the first delivery agent from activestatus to inactive status.
 15. The method as recited in claim 14,wherein the message causes activation of the first delivery agent, themethod further comprising: determining, based at least on geolocationinformation received from respective location sensors associated withrespective delivery agent devices of a plurality of delivery agentdevices, respective indicated geographic locations of the plurality ofdelivery agent devices; executing a second algorithm to determine, basedon the respective indicated geographic locations of the plurality ofdelivery agent devices and pickup locations of the individual merchantspredicted to receive orders, at least one location to which toreposition at least one delivery agent; and sending, based at least onresults of the second algorithm, a communication to the first deliveryagent device to cause at least one of: relocation of the first deliveryagent from a current location toward a different location; or posting ofthe first delivery agent at a specified location.
 16. The method asrecited in claim 15, further comprising determining, for the upcomingtime period, the pickup locations of the individual merchants predictedto receive orders for the upcoming time period; and sending the messageto the first delivery agent device based at least on a current locationof the first delivery agent device with respect to the pickup locationsof the individual merchants predicted to receive orders.
 17. The methodas recited in claim 15, further comprising determining, based on thecomputational model and the orders received for the individual merchantsover the past period of time, one or more items predicted to be includedin the orders predicted to be received for the individual merchants;determining, for the one or more items predicted to be included in theorders, respective predicted order preparation times associated with theorders; and determining the at least one location to which to repositionthe at least one delivery agent based at least in part on the respectivepredicted order preparation times.
 18. The method as recited in claim14, wherein, based at least on the result of the delivery agentmanagement logic indicating an undersupply of delivery agents arecurrently active, the message to the first delivery agent device is to acurrently inactive delivery agent to cause activation of the firstdelivery agent from inactive status to active status.
 19. The method asrecited in claim 14, wherein, based at least on the result of thedelivery agent management logic indicating an oversupply of deliveryagents are currently active, the message to the first delivery agentdevice is to a currently active delivery agent to cause deactivation ofthe first delivery agent from active status to inactive status.
 20. Themethod as recited in claim 14, further comprising determining thepredicted number of orders predicted to be received for an upcoming timeperiod for the individual merchants of the plurality of merchants basedat least in part on at least one of: weather information for weather ina service region of the individual merchants; or event information forevents taking place in the service region.